#ifndef _STEPPER_H
#define _STEPPER_H

#define M0_A_PORT	(GPIOB)
#define M0_B_PORT	(GPIOB)
#define M0_C_PORT	(GPIOD)
#define M0_D_PORT	(GPIOD)
#define M1_A_PORT	(GPIOD)
#define M1_B_PORT	(GPIOD)
#define M1_C_PORT	(GPIOD)
#define M1_D_PORT	(GPIOA)
#define MO_PIN_A	GPIO_PIN_5
#define MO_PIN_B	GPIO_PIN_4
#define MO_PIN_C	GPIO_PIN_2
#define MO_PIN_D	GPIO_PIN_3
#define M1_PIN_A	GPIO_PIN_4
#define M1_PIN_B	GPIO_PIN_5
#define M1_PIN_C	GPIO_PIN_6
#define M1_PIN_D	GPIO_PIN_1

#define	STPCTL_PORT		(GPIOC)
#define	STPCTL_ENPIN	(GPIO_PIN_5)
#define	STPCTL_LPIN		(GPIO_PIN_6)
#define	STPCTL_RPIN		(GPIO_PIN_7)

#define	STPPER_IO(GPIOx,PortPins,val)	do{\
	if(val)\
		GPIOx->ODR |= (uint8_t)PortPins;\
	else\
		GPIOx->ODR &= (uint8_t)(~PortPins);\
}while(0);

int stage_inc(int s);
int stage_dec(int s);
void step1(void);
void step2(void);
void stepper_forward(void);
void stepper_back(void);
void stepper_left(void);
void stepper_right(void);
void stepper_poll(void);

#endif
